package come.bjpowernode.javase.reflect;

import come.bjpowernode.javase.reflect.bin.Vip;

import java.lang.reflect.Constructor;

/*
通过反射机制，new对象。
 */
public class ReflectTest12 {
    public static void main(String[] args) throws Exception{
        //不使用反射机制怎么创建对象
        Vip vip1 = new Vip();
        Vip vip2 = new Vip(110,"zhangsan","2011-1-1",true);

        //使用反射机制
        Class c = Class.forName("come.bjpowernode.javase.reflect.bin.Vip");
        //调用无参数构造方法
        Object obj = c.newInstance();
        System.out.println(obj);
        //调用有参数的构造方法
        //第一步现获取的这个有参数的构造方法
        Constructor con = c.getDeclaredConstructor(int.class,String.class,String.class,
                boolean.class);
        //第二步：调用构造方法new对象。
        Object newObj = con.newInstance(110,"jackion","1990-1-1",true);
        System.out.println(newObj);

        //获取无参数构造方法
        Constructor con2 = c.getDeclaredConstructor();
        Object newObj2 = con2.newInstance();
        System.out.println(newObj2);



    }
}
